struct _CMHIVE// Size=0xbe8
{
    struct _HHIVE Hive;// Offset=0x0 Size=0x598
    void * FileHandles[6];// Offset=0x598 Size=0x30
    struct _LIST_ENTRY NotifyList;// Offset=0x5c8 Size=0x10
    struct _LIST_ENTRY HiveList;// Offset=0x5d8 Size=0x10
    struct _LIST_ENTRY PreloadedHiveList;// Offset=0x5e8 Size=0x10
    struct _EX_RUNDOWN_REF HiveRundown;// Offset=0x5f8 Size=0x8
    struct _LIST_ENTRY ParseCacheEntries;// Offset=0x600 Size=0x10
    struct _CM_KEY_HASH_TABLE_ENTRY * KcbCacheTable;// Offset=0x610 Size=0x8
    unsigned long KcbCacheTableSize;// Offset=0x618 Size=0x4
    unsigned long Identity;// Offset=0x61c Size=0x4
    struct _FAST_MUTEX * HiveLock;// Offset=0x620 Size=0x8
    struct _EX_PUSH_LOCK ViewLock;// Offset=0x628 Size=0x8
    struct _KTHREAD * ViewLockOwner;// Offset=0x630 Size=0x8
    unsigned long ViewLockLast;// Offset=0x638 Size=0x4
    unsigned long ViewUnLockLast;// Offset=0x63c Size=0x4
    struct _FAST_MUTEX * WriterLock;// Offset=0x640 Size=0x8
    struct _ERESOURCE * FlusherLock;// Offset=0x648 Size=0x8
    struct _RTL_BITMAP FlushDirtyVector;// Offset=0x650 Size=0x10
    struct CMP_OFFSET_ARRAY * FlushOffsetArray;// Offset=0x660 Size=0x8
    unsigned long FlushOffsetArrayCount;// Offset=0x668 Size=0x4
    unsigned long FlushHiveTruncated;// Offset=0x66c Size=0x4
    struct _FAST_MUTEX * FlushLock2;// Offset=0x670 Size=0x8
    struct _EX_PUSH_LOCK SecurityLock;// Offset=0x678 Size=0x8
    struct _LIST_ENTRY MappedViewList;// Offset=0x680 Size=0x10
    struct _LIST_ENTRY PinnedViewList;// Offset=0x690 Size=0x10
    struct _LIST_ENTRY FlushedViewList;// Offset=0x6a0 Size=0x10
    unsigned short MappedViewCount;// Offset=0x6b0 Size=0x2
    unsigned short PinnedViewCount;// Offset=0x6b2 Size=0x2
    unsigned long UseCount;// Offset=0x6b4 Size=0x4
    unsigned long ViewsPerHive;// Offset=0x6b8 Size=0x4
    struct _FILE_OBJECT * FileObject;// Offset=0x6c0 Size=0x8
    unsigned long LastShrinkHiveSize;// Offset=0x6c8 Size=0x4
    union _LARGE_INTEGER ActualFileSize;// Offset=0x6d0 Size=0x8
    struct _UNICODE_STRING FileFullPath;// Offset=0x6d8 Size=0x10
    struct _UNICODE_STRING FileUserName;// Offset=0x6e8 Size=0x10
    struct _UNICODE_STRING HiveRootPath;// Offset=0x6f8 Size=0x10
    unsigned long SecurityCount;// Offset=0x708 Size=0x4
    unsigned long SecurityCacheSize;// Offset=0x70c Size=0x4
    long SecurityHitHint;// Offset=0x710 Size=0x4
    struct _CM_KEY_SECURITY_CACHE_ENTRY * SecurityCache;// Offset=0x718 Size=0x8
    struct _LIST_ENTRY SecurityHash[64];// Offset=0x720 Size=0x400
    unsigned long UnloadEventCount;// Offset=0xb20 Size=0x4
    struct _KEVENT ** UnloadEventArray;// Offset=0xb28 Size=0x8
    struct _CM_KEY_CONTROL_BLOCK * RootKcb;// Offset=0xb30 Size=0x8
    unsigned char Frozen;// Offset=0xb38 Size=0x1
    struct _CM_WORKITEM * UnloadWorkItem;// Offset=0xb40 Size=0x8
    struct _CM_WORKITEM UnloadWorkItemHolder;// Offset=0xb48 Size=0x28
    unsigned char GrowOnlyMode;// Offset=0xb70 Size=0x1
    unsigned long GrowOffset;// Offset=0xb74 Size=0x4
    struct _LIST_ENTRY KcbConvertListHead;// Offset=0xb78 Size=0x10
    struct _LIST_ENTRY KnodeConvertListHead;// Offset=0xb88 Size=0x10
    struct _CM_CELL_REMAP_BLOCK * CellRemapArray;// Offset=0xb98 Size=0x8
    unsigned long Flags;// Offset=0xba0 Size=0x4
    struct _LIST_ENTRY TrustClassEntry;// Offset=0xba8 Size=0x10
    unsigned long FlushCount;// Offset=0xbb8 Size=0x4
    struct _CM_RM * CmRm;// Offset=0xbc0 Size=0x8
    unsigned long CmRmInitFailPoint;// Offset=0xbc8 Size=0x4
    long CmRmInitFailStatus;// Offset=0xbcc Size=0x4
    struct _KTHREAD * CreatorOwner;// Offset=0xbd0 Size=0x8
    struct _KTHREAD * RundownThread;// Offset=0xbd8 Size=0x8
    union _LARGE_INTEGER LastWriteTime;// Offset=0xbe0 Size=0x8
};